Le modifiche da apportare all'applicazione myShop per risolvere l'esercizio 4.4 sono le seguenti:

1) aggiunta della tabella clienti:

CREATE TABLE `clienti` (
  `ID` int(11) NOT NULL default '0',
  `Nome` varchar(100) NOT NULL default '',
  `Cognome` varchar(100) NOT NULL default '',
  `Indirizzo` varchar(100) NOT NULL default '',
  `Username` varchar(100) NOT NULL default '',
  `Password` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`ID`)
) TYPE=InnoDB;

2) aggiunta dell'attributo IDCliente alla tabella intestazioni_ordini:

ALTER TABLE intestazioni_ordini
 ADD IDCliente int(11) NOT NULL default '0';

Ciò permetterà di collegare un cliente registrato nella tabella clienti ai relativi ordini. Si noti che è comunque necessario duplicare le informazioni anagrafiche (in clienti ed in intestazioni_ordini) in quanto una modifica nella tabella clienti (per esempio relativa all'indirizzo) non deve avere ripercussioni sullo storico degli ordini passati. I record con IDCliente pari a zero (0) corrisponderanno agli ordini inoltrati senza creare un account.

3) aggiunta della pagina registrazione.jsp che chiede se effettuare il login (nel caso di clienti già registrati) oppure di passare direttamente alla compilazione del form (per i clienti nuovi). Tale pagina dovrà essere collegata alla voce "Ordina!" del menu di navigazione al posto di ordina.jsp:

  <tr>
    <td class="blubg">
      <img src="images/TriangoloBlu.jpg" />
    </td>
    <td class="blubg">
      <a href="registrazione.jsp" style="color: white">Ordina!</a>
    </td>
  </tr>

4) modifica della visibilità dei membri di tipo String della classe Utente:

package myShop;

public class Utente {
  public String username, password, descrizione;

  public Utente(String u, String p, String d) {
    username=u;
    password=p;
    descrizione=d;
  }
}

5) modifica delle pagina ordina.jsp e invia.jsp in modo da tener conto dell'inserimento di nome utente, password e della relativa associazione all'anagrafica dei clienti e, tramite quest'ultima, anche dell'associazione agli ordini inoltrati.

Per completezza nella directory "myShopCustomers" è incluso tutto il codice relativo a myShop modificato in base all'esercizio 4.4.
